; ModuleID = 'if.c'
source_filename = "if.c"
; target的开始
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
;target的结束

; main 函数的定义
define dso_local i32 @main() #0{
	;为变量a和i开辟栈空间
	%1=alloca i32
	%2=alloca i32
	;将10和0写入a和i指向的内存空间
	store i32 10,i32* %1
	store i32 0,i32* %2
	;跳到while条件判断中
	br label %label_1

;i < 10
label_1:
	;取出i的值赋给%3
	%3=load i32, i32* %2
	;将i和10进行比较，得到的结果为布尔型赋给%4
	%4 = icmp ult i32 %3, 10
	;如果%4为1跳到label_2，否则跳到%label_3
	br i1 %4,label %label_2,label %label_3

;循环体的内容	
label_2:
	;i=i+1
	%5=add i32 %3 , 1
	store i32 %5,i32* %2
	;a=a+1,先取出a的值再相加再存回a里
	%6=load i32,i32* %1
	%7=add i32 %6,%5
	store i32 %7,i32* %1
	;跳回条件判断
	br label %label_1
;return a
label_3:
	;取出a的值
	%8=load i32,i32* %1
	;返回a
	ret i32 %8
}

